
# pytest parametrize
"""
1. 概念 ： 它也是一个装饰器函数 ，可以对测试用例进行参数化
2. 函数
@pytest.mark.paramerize(参数,[])
    参数 ：必须是一个字符串，用来接受列表中每个元素的值，若一组元素有多个值，需要用逗号隔开
    [] : 传入参数化的数据
"""
import pytest
from package_pytest.login import login

cases = [('正确的用户名和正确的密码登录',1,'admin','123456'),('正确的用户名和错误的密码登录',4,'admin','1234567'),('空的密码登录',3,'admin',''),('空的用户名登录',2,'','123456')]


@pytest.mark.parametrize("case_name,expect_result,username,password",cases)
def test_login(case_name,expect_result,username,password):

    actual_result = login(username,password).get('code')
    assert expect_result == actual_result